import { IsNotEmpty, IsNumber, IsPositive, IsString, Min } from 'class-validator';

/**
 * 产品创建数据传输对象
 * 用于验证产品创建请求中的数据
 */
export class CreateProductDto {
  /**
   * 产品名称
   */
  @IsNotEmpty({ message: '产品名称不能为空' })
  @IsString({ message: '产品名称必须是字符串' })
  name: string;

  /**
   * 产品描述
   */
  @IsNotEmpty({ message: '产品描述不能为空' })
  @IsString({ message: '产品描述必须是字符串' })
  description: string;

  /**
   * 产品价格
   */
  @IsNotEmpty({ message: '产品价格不能为空' })
  @IsNumber({}, { message: '产品价格必须是数字' })
  @IsPositive({ message: '产品价格必须大于0' })
  price: number;

  /**
   * 产品库存
   */
  @IsNotEmpty({ message: '产品库存不能为空' })
  @IsNumber({}, { message: '产品库存必须是数字' })
  @Min(0, { message: '产品库存不能小于0' })
  stock: number;

  /**
   * 产品分类
   */
  @IsNotEmpty({ message: '产品分类不能为空' })
  @IsString({ message: '产品分类必须是字符串' })
  category: string;
} 